home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / c / flash-0.4.3.lha / flash-0.4.3 / Lib / sprite.cc < prev    next >
C/C++ Source or Header  |  1999-02-21  |  2KB  |  75 lines

  1. /////////////////////////////////////////////////////////////
  2. // Flash Plugin and Player
  3. // Copyright (C) 1998,1999 Olivier Debon
  4. // 
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. // 
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. // 
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software
  17. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18. // 
  19. ///////////////////////////////////////////////////////////////
  20. //  Author : Olivier Debon  <odebon@club-internet.fr>
  21. //  
  22.  
  23. #include <stdio.h>
  24. #include "sprite.h"
  25.  
  26. static char *rcsid = "$Id: sprite.cc,v 1.7 1999/01/31 20:24:58 olivier Exp $";
  27.  
  28. Sprite::Sprite(long id, long frameCount) : Character(SpriteType, id)
  29. {
  30.     program = new Program(frameCount);
  31. }
  32.  
  33. Sprite::~Sprite()
  34. {
  35.     delete program;
  36. }
  37.  
  38. void
  39. Sprite::reset()
  40. {
  41.     program->rewindMovie();
  42. }
  43.  
  44. int
  45. Sprite::hasEventHandler()
  46. {
  47.     return 1;
  48. }
  49.  
  50. Program *
  51. Sprite::getProgram()
  52. {
  53.     return program;
  54. }
  55.  
  56. int
  57. Sprite::execute(GraphicDevice *gd, Matrix *matrix, Cxform *cxform)
  58. {
  59.     return program->nestedMovie(gd,0,matrix);
  60. }
  61.  
  62. ActionRecord *
  63. Sprite::eventHandler(GraphicDevice *gd, FlashEvent *event)
  64. {
  65.     DisplayList *dl;
  66.     ActionRecord *actions;
  67.  
  68.     dl = program->getDisplayList();
  69.     actions = dl->processEvent(gd, event);
  70.     if (actions) {
  71.         program->doAction(actions,0);
  72.     }
  73.     return actions;
  74. }
  75.